package com.fxp.project.jiuselu.web.models.coupon.mapper;

import com.fxp.project.jiuselu.web.models.coupon.entity.JslUserCoupon;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fxp.project.jiuselu.web.models.coupon.vo.JslUserCouponVo;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 用户优惠券记录表 Mapper 接口
 * </p>
 *
 * @author Jason.Wang
 * @since 2021-11-11
 */
public interface JslUserCouponMapper extends BaseMapper<JslUserCoupon> {

    /**
     * selectJslUserCouponVoForIndexShow: 查询当前用户的优惠券<br/>
     *
     * @param userId
     * @return
     * @author Kai.Wang
     * @date 2021/11/11 10:42
     */
    List<JslUserCouponVo> selectJslUserCouponVoForIndexShow(Long userId);

    JslUserCoupon selectJslUserCouponVoByOrderId(String orderId);

    /**
     * 查看当前用户的代金券
     * @param userId
     * @return
     */
    List<JslUserCouponVo> selectJslUserCategoryVoForIndexShow(Long userId);


    /**
     * selectJslUserCouponVoList: 查询当前用户的优惠券列表<br/>
     *
     * @param userId
     * @return
     * @author Kai.Wang
     * @date 2021/11/11 15:21
     */
    List<JslUserCouponVo> selectJslUserCouponVoList(@Param("userId") Long userId,@Param("expireTime") LocalDateTime expireTime);

    List<JslUserCouponVo> selectJslUserCouponVoListBytow(@Param("cid") Long cId,@Param("userId") Long userId);

    /**
     * selectJslUserCouponVoByUserIdWithId: 通过当前用户的Id与优惠券Id获取优惠券信息<br/>
     *
     * @param couponId
     * @param userId
     * @return
     * @author Kai.Wang
     * @date 2021/11/18 14:29
     */
    JslUserCouponVo selectJslUserCouponVoByUserIdWithId(@Param("couponId") Long couponId,@Param("userId") Long userId);

    int updateUserCoupon(JslUserCoupon jslUserCoupon);

    int updateUserCouponVo(JslUserCouponVo jslUserCouponvo);

    int updateCouponStatus(String orderId);
}
